package icu.xuyijie.springbootlearning2.chapter4.schedule;

import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author 徐一杰
 * @date 2025/03/07 15:33
 * @description 定时任务测试
 */
@Component
public class ScheduleTest {

    //@Async
    // fixedDelay会等待上次方法执行完才开始计时
    @Scheduled(fixedDelay = 1000)
    // fixedRate会按固定速率执行，无论上次的定时方法有没有执行完毕
    //@Scheduled(fixedRate = 1000)
    // 每秒执行一次
    //@Scheduled(cron = "*/1 * * * * *")
    // 10.20 1：10：30 执行一次
    //@Scheduled(cron = "30 10 1 20 10 ?")
    // 5-15 点，每次整点10分都会执行一次
    //@Scheduled(cron = "0 10 5-15 * * ?")
    public void method1() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //System.out.println(Thread.currentThread().getName() + new Date());
    }

    @Scheduled(fixedDelay = 1000)
    public void method2() {
        System.out.println(Thread.currentThread().getName() + new Date());
    }

}
